<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // class类的写法 
        class Anim {
            constructor(name,age){
                this.name = name;
                this.age = age;
            }
            // 原型对象上添加方法
            num(){
                console.log('有几根腿');
            }
            // Anim自身上添加 静态的属性和方法
            static pise(){
                console.log('动物的皮毛是什么颜色！！')
            }
            static yanjing = '眼睛是黑色'
        }
        
        // 子类 
        class Dog extends Anim{
            constructor(name,age,shegnying){
                super(name,age);
                /* 
                this.name = name;
                this.age = age;
                */
                this.shegnying = shegnying;
            }
            num_dog(){
                console.log('num_dog');
                // 在子类的原型对象上的方法中调用父类的原型对象上的方法
                super.num();
                // 在子类的原型对象上的方法中调用父类自身上的方法和属性，不能使用
                // super.pise();
            }
            // 在子类自身上添加方法 添加静态的属性和方法
            static pise_dog(){
                console.log('子类自身的方法和属性');
                // 在子类自身上的方法中，可以继承父类自身上的方法，不能继承父类原型对象上的方法
                super.pise();
                // super.num();
            }
          
        }

        // 原型对象上的方法想调用，new该类，形成实例对象  使用实例对象.原型对象上的方法（）
        let dahuang = new Dog('dahuang',3,'汪汪汪');
        console.log(dahuang);
        dahuang.num_dog();
        Dog.pise_dog();

        /* 
        class类继承通过extends进行继承，通过super进行接收
        super可以是函数  
        super可以是对象
        在构造器（constructor）中，super作为函数进行接收，把父类中的属性和方法传递给子类
        在子类的静态方法中，super作为对象调用，继承父类静态方法，不能继承父类原型对象上的方法
        在子类的原型对象上的方法中，super作为对象调用，继承父类原型对象上的方法，不能继承父类静态方法
        
        
        */
       
    </script>
</body>
</html>